Digital video capabilities can be incorporated into a wide range of devices, including digital televisions, digital direct broadcast systems, wireless communication devices, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, digital cameras, digital recording devices, video gaming devices, video game consoles, cellular or satellite radio telephones, and the like. Digital video devices implement video compression techniques, such as MPEG-2, MPEG-4, or H.264/MPEG-4, Part 10, Advanced Video Coding (AVC), to transmit and receive digital video more efficiently. Video compression techniques perform spatial and temporal prediction to reduce or remove redundancy inherent in video sequences.
In video coding, video compression often includes spatial prediction, motion estimation and motion compensation. Intra-coding relies on spatial prediction to reduce or remove spatial redundancy between video blocks within a given video frame. Inter-coding relies on temporal prediction to reduce or remove temporal redundancy between video blocks of successive video frames of a video sequence. For inter-coding, a video encoder performs motion estimation to track the movement of matching video blocks between two or more adjacent frames. Motion estimation generates motion vectors, which indicate the displacement of video blocks relative to corresponding prediction video blocks in one or more reference frames. Motion compensation uses the motion vectors to generate prediction video blocks from a reference frame or slice. After motion compensation, residual information (such as a residual video block) is generated by subtracting the prediction video block from the original video block to be coded. The video encoder usually applies transform, quantization and transform coefficient coding processes to further reduce the bit rate associated with communication of the residual block.
Sometimes, video coding uses multiple passes. In multi-pass video coding, a first video coding pass is used to code video blocks, and a second video coding pass changes and refines the coding. Multi-pass video coding may be used to adjust the bit-rate associated with the video coding. Conventionally, second pass video coding may re-perform all of the coding steps of the first video coding pass, but may apply a different level of quantization. A full re-encode of all of the video blocks during the second coding pass, however, is computationally intensive.